<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>The &lt;sqlMapGenerator&gt; Element</title>
  <link rel="stylesheet" type="text/css" href="../mbgstyle.css" />
</head>
<body>
<h1>The &lt;sqlMapGenerator&gt; Element</h1>
<p>The &lt;sqlMapGenerator&gt; element is used to define properties of the SQL map
generator.  The SQL Map Generator builds a MyBatis/iBATIS formatted SQL map XML file
for each introspected table.</p>
<p>If iBATIS2 is targeted, then this element is a required child element
of the <a href="context.html">&lt;context&gt;</a> element.</p>
<p>If MyBatis3 is targeted, then this element is a required child element
of the <a href="context.html">&lt;context&gt;</a> element only if your chosen
javaClientGenerator requires XML.</p>
<p>If you do not specify a javaClientGenerator, then
the following rules apply:</p>
<ul>
  <li>If you specify an sqlMapGenerator, then MBG will generate SQL map XML
      files and model classess only.</li>
  <li>If you do not specify an sqlMapGenerator, then MBG will generate
      model classes only.</li>
</ul>
<h2>Required Attributes</h2>
<table border="1" cellspacing="0" cellpadding="5">
  <tr>
    <th>Attribute</th>
    <th>Description</th>
  </tr>
  <tr>
    <td valign="top">targetPackage</td>
    <td>This is the package where the generated SQL Maps will be placed.  In
        the default generators, the property "enableSubPackages"
        controls how the actual package is calculated.  If true,
        then the calculated package will be the targetPackage plus
        sub packages for the table's catalog and schema if they exist.
        If false (the default) then the calculated package will be
        exactly what is specified in the targetPackage attribute.
        MyBatis Generator (MBG) will create folders as required for the generated
        packages.</td>
  </tr>
  <tr>
    <td valign="top">targetProject</td>
    <td>This is used to specify a target project for the
        generated SQL maps.  When running in the Eclipse
        environment, this specifies the project and source folder where
        the objects will be saved.
        In other environments, this value should be an existing directory
        on the local file system.  MBG will not create this directory if
        it does not exist.</td>
  </tr>
</table>

<h2>Optional Attributes</h2>
<p>None</p>

<h2>Child Elements</h2>
<ul>
  <li><a href="property.html">&lt;property&gt;</a> (0..N)</li>
</ul>

<h2>Supported Properties</h2>
<p>This table lists the properties of the default SQL Map generators that can be
specified with the <a href="property.html">&lt;property&gt;</a> child element:</p>
<table border="1" cellspacing="0" cellpadding="5">
  <tr>
    <th>Property Name</th>
    <th>Property Values</th>
  </tr>
  <tr>
    <td valign="top">enableSubPackages</td>
    <td>This property is used to select whether MBG will generate different
        Java packages for the objects based on the catalog and schema of the
        introspected table.
        <p>For example, suppose a table MYTABLE in schema MYSCHMA.
        Also suppose that the targetPackage attribute is set to "com.mycompany".
        If this property is true, the generated SQL Map for the table will be placed in
        the package "com.mycompany.myschema".  If the property is false, the generated
        SQL Map will be placed in the "com.mycompany" schema.</p>
        <p><i>The default value is false.</i></p></td>
  </tr>
</table>

<h2>Example</h2>
<p>This element specifies that we always want to place generated SQL Maps
in the "'test.model" package and that we want to use subpackages based on the
table schema and catalog.</p>
<pre>
&lt;sqlMapGenerator targetPackage="test.model"
     targetProject="\MyProject\src"&gt;
  &lt;property name="enableSubPackages" value="true" /&gt;
&lt;/sqlMapGenerator&gt;
</pre>

</body>
</html>
